package com.ruoyi.business.service;

import com.ruoyi.business.domain.MroLogistics;
import com.ruoyi.business.dto.CheckMorLogisticsDto;
import com.ruoyi.business.vo.LogisticsDetailVo;

import java.util.List;

/**
 * 物流信息Service接口
 *
 * @author wyb
 * @date 2025-07-28
 */
public interface IMroLogisticsService {
    /**
     * 查询物流信息
     *
     * @param deliveryNo 物流信息主键
     * @return 物流信息
     */
    public MroLogistics selectMroLogisticsByDeliveryNo(String deliveryNo);

    /**
     * 查询物流信息列表
     *
     * @param mroLogistics 物流信息
     * @return 物流信息集合
     */
    public List<MroLogistics> selectMroLogisticsList(MroLogistics mroLogistics);

    /**
     * 新增物流信息
     *
     * @param mroLogistics 物流信息
     * @return 结果
     */
    public int insertMroLogistics(MroLogistics mroLogistics);

    /**
     * 修改物流信息
     *
     * @param mroLogistics 物流信息
     * @return 结果
     */
    public int updateMroLogistics(MroLogistics mroLogistics);

    /**
     * 批量删除物流信息
     *
     * @param deliveryNos 需要删除的物流信息主键集合
     * @return 结果
     */
    public int deleteMroLogisticsByDeliveryNos(String[] deliveryNos);

    /**
     * 删除物流信息信息
     *
     * @param deliveryNo 物流信息主键
     * @return 结果
     */
    public int deleteMroLogisticsByDeliveryNo(String deliveryNo);

    public boolean checkMroLogisticsUnique(MroLogistics mroLogistics);

    public boolean checkMroLogisticsByOrderNoAndDkIdAndNumberUnique(CheckMorLogisticsDto checkMorLogisticsDto);

    void batchInsertOrUpdateByImport(List<MroLogistics> saveList);


    MroLogistics selectLogisticsInfoByDeliveryNo(String deliveryNo);
    List<LogisticsDetailVo> getLogisticsInfoByOuterOrderNo(String outerOrderNo);

    List<MroLogistics> distinctList(MroLogistics mroLogistics);
}
